In 3GPP Long-Term Evolution (LTE) telecommunication systems, data packets are transported using the same protocols that are used on the Internet. However, the transport mechanisms used in LTE are more complex owing to two requirements that the Internet does not cater for, namely endpoint mobility and guaranteed quality of service (QoS). LTE fulfils these requirements by using so-called EPS bearers that transfer data bi-directionally on the correct route between the user equipment (UE) and the public data network (PDN) gateway or the serving gateway, and with the correct QoS. A bearer can be initiated by the network at the request of the UE, provided that the required network resources are available. Once the bearer has been established, the service can be provided to the UE. During the provision of the service, the network applies proper scheduling policies, guaranteed maximum loss rate, etc. to ensure the QoS of the bearer.
The network can offer QoS guarantees using an enhancement to the IP protocol called Differentiated Services (DiffServ). This is done by an ingress router at the entry point to a DiffServ network examining incoming packets, grouping them into classes (“Per Hop Behaviours”, PHB), and labelling them using a six-bit so-called “Differentiated Services Code Point” (DSCP) field in the IP header. The DSCP field is examined by routers within the network and used in their algorithms for queueing, forwarding and dropping data packets. There are three types of PHB, namely best effort, expedited forwarding and assured forwarding. The PDN generates the DSCP field based on the QoS class indicator of the overlying bearer, using a predetermined mapping. DiffServ works by assigning a specific value from the network layer. The Linux implementation is the setsockopt( ) function, which sets up a value for a network socket in the UE. This value can be modified from user-space and can be used by the network to determine the required QoS relating to the data flow to the socket. QoS requirements can alternatively be signalled in the transport layer. In any case, the service requirements of a data flow between the network and a socket in the UE are specified for the whole lifetime of the service.